Связанные валидации

Имеется в виду ситуация, когда ошибка одной валидации прерывает выполнение группы других.

Cascade mode
https://docs.fluentvalidation.net/en/latest/cascade.html

Позволяет прервать цепочку валидаций, но только в рамках одного правила.

RuleFor(x => x.Prop)
 .Cascade(CascadeMode.Stop)
 .NotNull()
 .NotEqual("foo");
Dependent Rules
https://docs.fluentvalidation.net/en/latest/dependentrules.html

Позволяет указать делегат, код валидаций которых будет выполняться только в ситуации, когда правило выполнилось корректно.

RuleFor(x => x.NullableStructProp)
 .NotNull()
 .DependentRules(
  () => {
   RuleFor(x => x.NullableStructProp!.value.StructProp)
    .NotEmpty();
  }
);
  

 

  
  
Теги: